package com.itextpdf.text.pdf.parser; import com.itextpdf.testutils.TestResourceUtils; import com.itextpdf.text.pdf.PdfReader; import junit.framework.Assert; import org.junit.Test; import java.io.IOException; public class GlyphTextRenderListenerTest{ @Test public void test1() throws IOException { final PdfReader pdfReader = TestResourceUtils.getResourceAsPdfReader(this, "test.pdf"); PdfReaderContentParser parser = new PdfReaderContentParser(pdfReader); float x1, y1, x2, y2; x1 = 203; x2 = 224; y1 = 842 - 44; y2 = 842 - 93; String extractedText = parser.processContent(1, new GlyphTextRenderListener(new FilteredTextRenderListener(new LocationTextExtractionStrategy(), new RegionTextRenderFilter(new com.itextpdf.text.Rectangle(x1, y1, x2, y2))))).getResultantText(); Assert.assertEquals("1234\nt5678", extractedText); } @Test public void test2() throws IOException { final PdfReader pdfReader = TestResourceUtils.getResourceAsPdfReader(this, "Sample.pdf"); PdfReaderContentParser parser = new PdfReaderContentParser(pdfReader); String extractedText = parser.processContent(1, new GlyphTextRenderListener(new FilteredTextRenderListener(new LocationTextExtractionStrategy(), new RegionTextRenderFilter(new com.itextpdf.text.Rectangle(111,855,136,867))))).getResultantText(); Assert.assertEquals("Your ", extractedText); } @Test public void testWithMultiFilteredRenderListener() throws IOException { final PdfReader pdfReader = TestResourceUtils.getResourceAsPdfReader(this, "test.pdf"); PdfReaderContentParser parser = new PdfReaderContentParser(pdfReader); float x1, y1, x2, y2; MultiFilteredRenderListener listener = new MultiFilteredRenderListener(); x1 = 122; x2 = 144; y1 = 841.9f - 151; y2 = 841.9f - 163; TextExtractionStrategy region1Listener = listener.attachRenderListener(new LocationTextExtractionStrategy(), new RegionTextRenderFilter(new com.itextpdf.text.Rectangle(x1, y1, x2, y2))); x1 = 156; x2 = 169; y1 = 841.9f - 151; y2 = 841.9f - 163; TextExtractionStrategy region2Listener = listener.attachRenderListener(new LocationTextExtractionStrategy(), new RegionTextRenderFilter(new com.itextpdf.text.Rectangle(x1, y1, x2, y2))); parser.processContent(1, new GlyphRenderListener(listener)); Assert.assertEquals("Your", region1Listener.getResultantText()); Assert.assertEquals("dju", region2Listener.getResultantText()); } }